package cn.cool.middleware.dynamic_thread_pool.sdk.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 动态线程池配置文件
 */
@Data
@ConfigurationProperties(prefix = "dynamic.thread.pool.config", ignoreInvalidFields = true)
public class DynamicThreadPoolAutoProperties {
    /** 状态：open=开启，close=关闭 */
    private boolean enable;
    /** redis host */
    private String host;
    /** redis port */
    private int port = 6379;
    /** 账户密码 */
    private String password;
    /** 设置线程池的大小，默认为 64 */
    private int poolSize = 64;
    /** 设置线程池的最小空闲连接数，默认为 10 */
    private int minIdleSize = 10;
    /** 设置连接的最大空闲时间（单位：毫秒），超过该时间的空闲连接将被关闭，默认为 10000 */
    private int idleTimeout = 10000;
    /** 设置连接超时时间（单位：毫秒），默认为 10000 */
    private int connectTimeout = 10000;
    /** 设置连接重试次数，默认为 3 */
    private int retryAttempts = 3;
    /** 设置连接重试的间隔时间，默认为 10000 */
    private int retryInterval = 1000;
    /** 设置定期检查连接是否可用的时间单位，默认为0，标识不进行定期检查 */
    private int pingInterval = 0;
    /** 设置是否保持长连接，默认为 true */
    private boolean keepAlive = true;
}